static_library("CodeGen") {
  output_name = "LLVMCodeGen"
  public_deps = [
    # Must be a public_dep because CodeGen's headers include llvm-config.h.
    "//llvm/include/llvm/Config:llvm-config",
  ]
  deps = [
    "//llvm/lib/Analysis",
    "//llvm/lib/Bitcode/Reader",
    "//llvm/lib/Bitcode/Writer",
    "//llvm/lib/IR",
    "//llvm/lib/MC",
    "//llvm/lib/ProfileData",
    "//llvm/lib/Support",
    "//llvm/lib/Target",
    "//llvm/lib/TargetParser",
    "//llvm/lib/Transforms/ObjCARC",
    "//llvm/lib/Transforms/Scalar",
    "//llvm/lib/Transforms/Utils",
  ]
  sources = [
    "AggressiveAntiDepBreaker.cpp",
    "AllocationOrder.cpp",
    "Analysis.cpp",
    "AssignmentTrackingAnalysis.cpp",
    "AtomicExpandPass.cpp",
    "BasicBlockSections.cpp",
    "BasicBlockSectionsProfileReader.cpp",
    "BasicTargetTransformInfo.cpp",
    "BranchFolding.cpp",
    "BranchRelaxation.cpp",
    "BreakFalseDeps.cpp",
    "CFGuardLongjmp.cpp",
    "CFIFixup.cpp",
    "CFIInstrInserter.cpp",
    "CalcSpillWeights.cpp",
    "CallBrPrepare.cpp",
    "CallingConvLower.cpp",
    "CodeGen.cpp",
    "CodeGenCommonISel.cpp",
    "CodeGenPassBuilder.cpp",
    "CodeGenPrepare.cpp",
    "CommandFlags.cpp",
    "ComplexDeinterleavingPass.cpp",
    "CriticalAntiDepBreaker.cpp",
    "DFAPacketizer.cpp",
    "DeadMachineInstructionElim.cpp",
    "DetectDeadLanes.cpp",
    "DwarfEHPrepare.cpp",
    "EHContGuardCatchret.cpp",
    "EarlyIfConversion.cpp",
    "EdgeBundles.cpp",
    "ExecutionDomainFix.cpp",
    "ExpandLargeDivRem.cpp",
    "ExpandLargeFpConvert.cpp",
    "ExpandMemCmp.cpp",
    "ExpandPostRAPseudos.cpp",
    "ExpandReductions.cpp",
    "ExpandVectorPredication.cpp",
    "FEntryInserter.cpp",
    "FaultMaps.cpp",
    "FinalizeISel.cpp",
    "FixupStatepointCallerSaved.cpp",
    "FuncletLayout.cpp",
    "GCMetadata.cpp",
    "GCMetadataPrinter.cpp",
    "GCRootLowering.cpp",
    "GlobalMerge.cpp",
    "HardwareLoops.cpp",
    "IfConversion.cpp",
    "ImplicitNullChecks.cpp",
    "IndirectBrExpandPass.cpp",
    "InlineSpiller.cpp",
    "InterferenceCache.cpp",
    "InterleavedAccessPass.cpp",
    "InterleavedLoadCombinePass.cpp",
    "IntrinsicLowering.cpp",
    "JMCInstrumenter.cpp",
    "LLVMTargetMachine.cpp",
    "LatencyPriorityQueue.cpp",
    "LazyMachineBlockFrequencyInfo.cpp",
    "LexicalScopes.cpp",
    "LiveDebugValues/InstrRefBasedImpl.cpp",
    "LiveDebugValues/LiveDebugValues.cpp",
    "LiveDebugValues/VarLocBasedImpl.cpp",
    "LiveDebugVariables.cpp",
    "LiveInterval.cpp",
    "LiveIntervalCalc.cpp",
    "LiveIntervalUnion.cpp",
    "LiveIntervals.cpp",
    "LivePhysRegs.cpp",
    "LiveRangeCalc.cpp",
    "LiveRangeEdit.cpp",
    "LiveRangeShrink.cpp",
    "LiveRegMatrix.cpp",
    "LiveRegUnits.cpp",
    "LiveStacks.cpp",
    "LiveVariables.cpp",
    "LocalStackSlotAllocation.cpp",
    "LoopTraversal.cpp",
    "LowLevelType.cpp",
    "LowerEmuTLS.cpp",
    "MBFIWrapper.cpp",
    "MIRCanonicalizerPass.cpp",
    "MIRFSDiscriminator.cpp",
    "MIRNamerPass.cpp",
    "MIRPrinter.cpp",
    "MIRPrintingPass.cpp",
    "MIRSampleProfile.cpp",
    "MIRVRegNamerUtils.cpp",
    "MIRYamlMapping.cpp",
    "MLRegallocEvictAdvisor.cpp",
    "MLRegallocPriorityAdvisor.cpp",
    "MachineBasicBlock.cpp",
    "MachineBlockFrequencyInfo.cpp",
    "MachineBlockPlacement.cpp",
    "MachineBranchProbabilityInfo.cpp",
    "MachineCFGPrinter.cpp",
    "MachineCSE.cpp",
    "MachineCheckDebugify.cpp",
    "MachineCombiner.cpp",
    "MachineCopyPropagation.cpp",
    "MachineCycleAnalysis.cpp",
    "MachineDebugify.cpp",
    "MachineDominanceFrontier.cpp",
    "MachineDominators.cpp",
    "MachineFrameInfo.cpp",
    "MachineFunction.cpp",
    "MachineFunctionPass.cpp",
    "MachineFunctionPrinterPass.cpp",
    "MachineFunctionSplitter.cpp",
    "MachineInstr.cpp",
    "MachineInstrBundle.cpp",
    "MachineLICM.cpp",
    "MachineLateInstrsCleanup.cpp",
    "MachineLoopInfo.cpp",
    "MachineLoopUtils.cpp",
    "MachineModuleInfo.cpp",
    "MachineModuleInfoImpls.cpp",
    "MachineModuleSlotTracker.cpp",
    "MachineOperand.cpp",
    "MachineOptimizationRemarkEmitter.cpp",
    "MachineOutliner.cpp",
    "MachinePassManager.cpp",
    "MachinePipeliner.cpp",
    "MachinePostDominators.cpp",
    "MachineRegionInfo.cpp",
    "MachineRegisterInfo.cpp",
    "MachineSSAContext.cpp",
    "MachineSSAUpdater.cpp",
    "MachineScheduler.cpp",
    "MachineSink.cpp",
    "MachineSizeOpts.cpp",
    "MachineStableHash.cpp",
    "MachineStripDebug.cpp",
    "MachineTraceMetrics.cpp",
    "MachineUniformityAnalysis.cpp",
    "MachineVerifier.cpp",
    "MacroFusion.cpp",
    "ModuloSchedule.cpp",
    "MultiHazardRecognizer.cpp",
    "NonRelocatableStringpool.cpp",
    "OptimizePHIs.cpp",
    "PHIElimination.cpp",
    "PHIEliminationUtils.cpp",
    "ParallelCG.cpp",
    "PatchableFunction.cpp",
    "PeepholeOptimizer.cpp",
    "PostRAHazardRecognizer.cpp",
    "PostRASchedulerList.cpp",
    "PreISelIntrinsicLowering.cpp",
    "ProcessImplicitDefs.cpp",
    "PrologEpilogInserter.cpp",
    "PseudoProbeInserter.cpp",
    "PseudoSourceValue.cpp",
    "RDFGraph.cpp",
    "RDFLiveness.cpp",
    "RDFRegisters.cpp",
    "ReachingDefAnalysis.cpp",
    "RegAllocBase.cpp",
    "RegAllocBasic.cpp",
    "RegAllocEvictionAdvisor.cpp",
    "RegAllocFast.cpp",
    "RegAllocGreedy.cpp",
    "RegAllocPBQP.cpp",
    "RegAllocPriorityAdvisor.cpp",
    "RegAllocScore.cpp",
    "RegUsageInfoCollector.cpp",
    "RegUsageInfoPropagate.cpp",
    "RegisterBank.cpp",
    "RegisterBankInfo.cpp",
    "RegisterClassInfo.cpp",
    "RegisterCoalescer.cpp",
    "RegisterPressure.cpp",
    "RegisterScavenging.cpp",
    "RegisterUsageInfo.cpp",
    "RemoveRedundantDebugValues.cpp",
    "RenameIndependentSubregs.cpp",
    "ReplaceWithVeclib.cpp",
    "ResetMachineFunctionPass.cpp",
    "SafeStack.cpp",
    "SafeStackLayout.cpp",
    "SanitizerBinaryMetadata.cpp",
    "ScheduleDAG.cpp",
    "ScheduleDAGInstrs.cpp",
    "ScheduleDAGPrinter.cpp",
    "ScoreboardHazardRecognizer.cpp",
    "SelectOptimize.cpp",
    "ShadowStackGCLowering.cpp",
    "ShrinkWrap.cpp",
    "SjLjEHPrepare.cpp",
    "SlotIndexes.cpp",
    "SpillPlacement.cpp",
    "SplitKit.cpp",
    "StackColoring.cpp",
    "StackFrameLayoutAnalysisPass.cpp",
    "StackMapLivenessAnalysis.cpp",
    "StackMaps.cpp",
    "StackProtector.cpp",
    "StackSlotColoring.cpp",
    "SwiftErrorValueTracking.cpp",
    "SwitchLoweringUtils.cpp",
    "TailDuplication.cpp",
    "TailDuplicator.cpp",
    "TargetFrameLoweringImpl.cpp",
    "TargetInstrInfo.cpp",
    "TargetLoweringBase.cpp",
    "TargetLoweringObjectFileImpl.cpp",
    "TargetOptionsImpl.cpp",
    "TargetPassConfig.cpp",
    "TargetRegisterInfo.cpp",
    "TargetSchedule.cpp",
    "TargetSubtargetInfo.cpp",
    "TwoAddressInstructionPass.cpp",
    "TypePromotion.cpp",
    "UnreachableBlockElim.cpp",
    "VLIWMachineScheduler.cpp",
    "ValueTypes.cpp",
    "VirtRegMap.cpp",
    "WasmEHPrepare.cpp",
    "WinEHPrepare.cpp",
    "XRayInstrumentation.cpp",
  ]
}
